#!/usr/bin/python
#coding:utf-8
'''
百度接口请求，支持单文件和多文件
'''

import os
import pandas as pd
import numpy as np
import baiduModel 

from tkinter import *
from tkinter import ttk
from tkinter import filedialog

curPath = os.path.abspath(os.path.dirname(__file__))
fontSize=10
startRow=1

class show():
    def __init__(self, root,log):
        '''
        初始化类
        '''
        self.log=log
        self.root=root
        self.control=Frame(self.root,bg='#F0F0F0')
        
        #头部
        self.top =Frame(self.control)
        self.topLayout()
        self.top.pack(side=LEFT,expand=YES)

        #right 右边
        fm2_right=Frame(self.control)
        self.btnSend=Button(fm2_right,text='请求',font=('微软雅黑',fontSize),width='10',command=self.deal)
        self.btnSend.pack()
        fm2_right.pack(side=RIGHT,expand=YES)

        self.control.pack(side=TOP,expand=YES)

        # 输出框
        fm3=Frame(self.root)
        self.txtMsg = Text(fm3)
        self.txtMsg.pack(side=BOTTOM,pady=40,padx=20,fill="x")
        fm3.pack(side=BOTTOM,fill="x")

    
    def topLayout(self):
        '''
        头部
        '''
        num=self.getRowNum()
        Label(self.top,text='接口类型:',font=('微软雅黑',fontSize),width='10').grid(row=num,pady=10)
        self.showType = IntVar()  #管理单选按钮
        Radiobutton(self.top,variable=self.showType,text="人脸图片分析",font=('微软雅黑',fontSize),width='20',value=-1).grid(row=num,column=1,sticky=W)
        Radiobutton(self.top,variable=self.showType,text="人脸比对（暂不可用）",font=('微软雅黑',fontSize),width='20',value=0).grid(row=num,column=2,sticky=W)
        self.showType.set(-1)
        self.top.pack(side=TOP,expand=YES)

        #选择文件
        num=self.getRowNum()
        Label(self.top,text='选择文件:',font=('微软雅黑',fontSize),width='10').grid(row=num,pady=10)
        self.jpgFile=Entry(self.top,width='50',font=('微软雅黑',fontSize))
        self.jpgFile.grid(row=num,column=1,columnspan=2,sticky=W)
        ttk.Button(self.top,text='选择',command=self.choseFile).grid(row=num,column=3,sticky=W,padx=1)
    
    def choseFile(self):
        '''
        选择txt文件
        '''
        global curPath
        result=filedialog.askopenfilename(title='打开单个文件',filetypes=[("文本文件", "*.jpg"), ('目录', '*')], initialdir=curPath)
        if len(result)>0:
            self.jpgFile.delete(0,END)
            self.jpgFile.insert(0,result)
            curPath = os.path.dirname(curPath)
            self.txtMsg.insert(1.0,result+"\n")
    
    def getRowNum(self):
        '''
        获取行号
        '''
        global startRow
        startRow+=1
        return startRow

    def call(self,model,value):
        '''
        类型选择：
            model：单选对象
            value：选择值
        '''
        model.set(value)

    def clear(self,model):
        '''
        清空面板
        '''
        for widget in model.winfo_children():
            widget.destroy()
    
    def deal(self):
        '''
        数据展示
        '''
        jpgFile=self.jpgFile.get()  #获取文件
        if jpgFile!="":
            result=baiduModel.faceImgBase64(jpgFile)
            self.txtMsg.insert(1.0,result+"\n")
        else:
            self.txtMsg.insert(1.0,"请先选择文件\n")
        